home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Workbench Design
/
WB Collection.iso
/
workbench werkzeuge
/
memory & system tools
/
tinymeter
/
source
/
tinymeter_main
/
volumes.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-07
|
2KB
|
70 lines
#include <exec/types.h>
#include <exec/memory.h>
#include <dos/dos.h>
#include <dos/dosextens.h>
#include <dos/notify.h>
#include <intuition/intuition.h>
#include <intuition/gadgetclass.h>
#include <intuition/intuitionbase.h>
#include <intuition/classusr.h>
#include <intuition/imageclass.h>
#include <intuition/gadgetclass.h>
#include <intuition/cghooks.h>
#include <intuition/icclass.h>
#include <intuition/classes.h>
#include <intuition/sghooks.h>
#include <intuition/screens.h>
#include <datatypes/datatypesclass.h>
#include <datatypes/datatypes.h>
#include <datatypes/pictureclass.h>
#include <graphics/gfxbase.h>
#include <graphics/text.h>
#include <graphics/gfxmacros.h>
#include <utility/tagitem.h>
#include <utility/hooks.h>
#include <libraries/commodities.h>
#include <string.h>
#include <clib/macros.h>
#include "gaugeclass.h"
#include "tinymeter.h"
getVolsize(struct tm_sys_set *set,struct tm_data *data,char *volname)
{
struct InfoData inf;
struct DevProc *devproc;
struct DosList *dl=0;
int dummy;
if(dl = (struct DosList *)LockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ));
{
dummy=my_strlen(volname)-1;
volname[dummy]=0;
if(FindDosEntry(dl,volname,LDF_VOLUMES|LDF_DEVICES))
{
volname[dummy]=':';
if(devproc=(struct DevProc *)GetDeviceProc(volname,NULL))
{
if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE)
{
switch(inf.id_DiskType)
{
case ID_UNREADABLE_DISK:
case ID_NOT_REALLY_DOS:
case ID_NO_DISK_PRESENT:
data->volmax=0;
data->volcur=0;
break;
default:
data->volcur=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
data->volmax=inf.id_NumBlocks*inf.id_BytesPerBlock;
break;
}
}
FreeDeviceProc(devproc);
}
}
UnLockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ);
}
}